주피터 노트북 설정 가이드

가상환경 커널 설정

1. 가상환경 생성 및 활성화

# 가상환경 생성
python -m venv venv_name

# 활성화 (Linux/macOS)
source venv_name/bin/activate

# 활성화 (Windows)
venv_name\Scripts\activate

2. 커널 등록

# ipykernel 설치
pip install ipykernel

# 커널 등록
python -m ipykernel install --user --name=venv_name --display-name "Python (venv_name)"

파라미터:

  • --user: 사용자 레벨 설치
  • --name: 커널 내부 이름
  • --display-name: 노트북에서 보이는 이름

3. 커널 관리

# 커널 목록 확인
jupyter kernelspec list

# 커널 제거
jupyter kernelspec uninstall kernel_name

4. VS Code에서 사용

  1. 노트북 파일 열기
  2. 우측 상단 커널 선택 버튼 클릭
  3. 등록한 커널 선택

또는 명령 팔레트(Ctrl+Shift+P) → "Python: Select Interpreter"


Matplotlib 한글 깨짐 해결

방법 1: koreanize-matplotlib 사용 (가장 간단, 권장)

# 패키지 설치
pip install koreanize-matplotlib
import matplotlib.pyplot as plt
import koreanize_matplotlib  # 한글 폰트 자동 설정

# 이제 바로 한글 사용 가능
plt.figure(figsize=(8, 6))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('한글 제목 테스트')
plt.xlabel('x축 레이블')
plt.ylabel('y축 레이블')
plt.show()

장점:

  • 한 줄 import로 자동 설정
  • 폰트 설치 및 설정 자동 처리
  • 마이너스 기호 깨짐도 자동 해결

방법 2: 수동 설정 (Ubuntu)

1. 한글 폰트 설치

# 나눔 폰트 설치
sudo apt-get install fonts-nanum fonts-nanum-coding

# 또는 Noto 폰트 설치
sudo apt-get install fonts-noto-cjk

# 폰트 캐시 삭제 (필요시)
fc-cache -fv

2. 설치된 폰트 확인

# 한글 폰트 목록 확인
fc-list :lang=ko

3. Matplotlib 설정

노트북에서 직접 설정

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 한글 폰트 설정
plt.rcParams['font.family'] = 'NanumGothic'  # 나눔고딕
# 또는
plt.rcParams['font.family'] = 'Noto Sans CJK KR'  # Noto 폰트

# 마이너스 기호 깨짐 방지
plt.rcParams['axes.unicode_minus'] = False

# 설정 확인
print(plt.rcParams['font.family'])

matplotlib 설정 파일 수정

import matplotlib
print(matplotlib.matplotlib_fname())  # 설정 파일 경로 확인

설정 파일(~/.config/matplotlib/matplotlibrc)에 추가:

font.family : NanumGothic
axes.unicode_minus : False

사용 가능한 폰트 확인 후 선택

import matplotlib.font_manager as fm

# 사용 가능한 한글 폰트 목록
font_list = [f.name for f in fm.fontManager.ttflist if 'Nanum' in f.name or 'Noto' in f.name]
print(font_list)

# 폰트 설정
plt.rcParams['font.family'] = font_list[0] if font_list else 'DejaVu Sans'
plt.rcParams['axes.unicode_minus'] = False

4. 완전한 예제

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 한글 폰트 설정
plt.rcParams['font.family'] = 'NanumGothic'
plt.rcParams['axes.unicode_minus'] = False

# 테스트
plt.figure(figsize=(8, 6))
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('한글 제목 테스트')
plt.xlabel('x축 레이블')
plt.ylabel('y축 레이블')
plt.show()

자주 사용하는 폰트 이름

  • NanumGothic - 나눔고딕
  • NanumBarunGothic - 나눔바른고딕
  • Noto Sans CJK KR - Noto Sans 한글
  • Malgun Gothic - 맑은 고딕 (Windows)